name: check_code_quality

on:
  push:
    branches: [ main ]
    paths:
      - "optimum/**.py"
      - "tests/**.py"
      - "examples/**.py"

  pull_request:
    branches: [ main ]
    paths:
      - "optimum/**.py"
      - "tests/**.py"
      - "examples/**.py"

concurrency:
  group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
  cancel-in-progress: true

jobs:
  build:
    strategy:
      fail-fast: false
      matrix:
        python-version: [3.8]
        os: [ubuntu-latest]

    runs-on: ${{ matrix.os }}
    steps:
    - uses: actions/checkout@v2
    - name: Setup Python ${{ matrix.python-version }}
      uses: actions/setup-python@v2
      with:
        python-version: ${{ matrix.python-version }}
    - name: Create and start a virtual environment
      run: |
        python -m venv venv
        source venv/bin/activate
    - name: Install dependencies
      run: |
        source venv/bin/activate
        pip install --upgrade pip
        pip install .[quality]

    - name: Check style with black
      run: |
        source venv/bin/activate
        black --check .
    - name: Check style with ruff
      run: |
        source venv/bin/activate
        ruff .
